Quality of Service (QoS) may refer to a perceived or measured quality that network service providers may offer to clients. Quality may be specified using commonly known characteristics of message criticality and urgency. Quality may be specified using technical parameters such as response time, deadline, guarantee, ordering, frame rate, jitter, priority, or similar measures. QoS Management may refer to an ability of a system to provide services to client applications at agreed QoS characteristics. For message oriented systems, QoS management may refer to assignment of different performance levels for transport and processing of messages by client and server applications, middleware and networks. QoS management may involve setup and control of QoS characteristics.
Concurrent applications in mission critical systems may have competing demands for system resources. Generally speaking, mission objectives may include collecting, processing, and delivering information (such as, by way of example and not by way of limitation, messages) to the right people at the right time. Specifically, mission objectives may be to allocate system resources to concurrent applications so that the applications can accomplish required or desired information collection, processing, and delivery with minimal delays. To achieve mission objectives, QoS management may provide controls for intelligently allocating resources to meet demands based on criticality and urgency and dynamically adapting the resource allocations to respond to changing situations. Network communication bandwidth (bandwidth may be a measure of capacity) may be a scarce resource that distributed systems may need to share in order to accomplish overall mission objectives.
In a messaging-based system architecture, message clients such as publishers (a publisher may include, by way of example and not by way of limitation, a sensor application) and subscribers (a subscriber may include, by way of example and not by way of limitation, a command and control application) may send and receive messages through information brokers (InfoBrokers, or brokers). A broker may be responsible for collecting and disseminating messages between or among publishers and subscribers. The clients (publishers and subscribers) and brokers may be situated in a distributed networked environment and may share communication bandwidth in sending, receiving and disseminating messages. In a non-message-based system, each networked computing node may be an equivalent broker where clients on the node may generate (i.e., publish) or consume (i.e., subscribe) messages in the network. QoS management may provide controls on how each generator, consumer, and broker of a networked system may advantageously utilize network resources to achieve the mission objectives of the networked system.
There is a need for a method for determining distribution of a shared resource among a plurality of nodes in a network that can automatically allocate the shared resource among distributed clients and brokers so that resource utilization is optimized to mission objectives.
There is a need for a method for determining distribution of a shared resource among a plurality of nodes in a network that can automatically and adaptively re-allocate bandwidth in real-time in dynamically changing message QoS characteristics and mission situations.